package com.wgy.day36常见的函数式接口.Predicate接口;

import java.util.function.Predicate;

/**
 * Created by pc on 2020/12/10 23:09
 * Description: LearningJava
 */
/*
需求:判断一个字符串
    判断字符串的长度是否大于5
    如果字符串的长度大于5.返回一个false
    如果字符串的长度不大于5.返回一个true
    所以我们可以使用取反符号!,对判断的结果进行取反

Predicate接口中的默认方法:negate,表示取反

default Predicate<T> negate(){
return (t)->!test(t);
}
使用的也是!来取反的
*/
public class Demo04PredicateNegate {
    /*    定义一个方法,方法的参数,传递一个字符串
        使用Predicate接口判断字符串的长度是否大于5  */
    public static boolean checkString(String s, Predicate<String> pre1) {
        //return !pre1.test(s);
        return pre1.negate().test(s);//等效于return !pre1.test(s);

    }

    public static void main(String[] args) {
        //定义一个字符串
        String s = "CDEFhhh";
        //调用checkString方法,参数传递字符串和Lambda表达式
        boolean b = checkString(s,
                (String str) -> {
                    return str.length() > 5;
                });
        System.out.println(b);

    }
}
